A test and verification environment for Java programs

نویسنده

  • Felix Berger
چکیده

This thesis examines an approach that combines model checking and software testing to improve the reliability of software systems. It employs the Moped model checker [Sch02], which computes reachability analyses on pushdown systems, and jMoped [Suw04], which translates Java programs into said pushdown systems. Both Moped and jMoped have been adapted in this work to compute the coverage of reachable program points of Java programs or single methods of Java class files. Assertion statements, which formulate postconditions, and other exception checks in the program can be verified for all possible input values in a finite range. JUnit test cases [JUN] can be automatically generated for failed assertions or other covered program points of interest and integrate seamlessly with manually written tests in the test suite. We developed an Eclipse plug-in [ECL] that provides an amenable user interface to the aforementioned features. It visualizes the analyzed program points next to the source code of the program and allows the user to interact with the ongoing analysis. Zusammenfassung Diese Arbeit untersucht eine kombinierte Herangehensweise an Model Checking und das Testen von Software, um die Zuverlässigkeit von Softwaresystemen zu verbessern. Sie verwendet den Moped Model Checker [Sch02], der Erreichbarkeitsanalysen auf Pushdown-Systemen berechnet, und den Übersetzer jMoped [Suw04], der Java-Programme in diese PushdownSysteme übersetzt. Sowohl Moped als auch jMoped wurden im Rahmen dieser Arbeit erweitert, um die Überdeckung erreichbarer Programmpunkte eines Java-Programms oder einzelner Methoden zu berechnen. Korrektheitsbedingungen, die durch sog. Assertion-Anweisungen in einem Java Programm formuliert werden können, und andere Ausnahmeüberprüfungen werden für alle möglichen Eingabewerte in einem endlichen Bereich verifiziert. JUnit Testfälle [JUN] können für nicht erfüllte Korrektheitsbedingungen und andere erreichbare und wichtige Programmpunkte automatisch generiert werden. Die erzeugten Testfälle integrieren sich zusammen mit handgeschriebenen Testfällen nahtlos in die Sammlung von Testfällen. Es wurde ein Eclipse Plugin [ECL] entwickelt, das eine leicht zugängliche Benutzerschnittstelle für die Testumgebung zur Verfügung stellt. Die Analyseergebnisse des Model Checkers werden direkt neben dem Quelltext des Programms angezeigt.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Kopitiam – a unified IDE for developing formally verified Java programs

We present Kopitiam, an Eclipse plugin for certifying full functional correctness of Java programs using higher-order separation logic. Kopitiam extends the Eclipse Java IDE with an interactive environment for program verification, powered by the general-purpose proof assistant Coq. Moreover, Kopitiam includes a development environment for Coq theories, where users can define program models, an...

متن کامل

OpenJML: Software verification for Java 7 using JML, OpenJDK, and Eclipse

OpenJML is a tool for checking code and specifications of Java programs. We describe our experience building the tool on the foundation of JML, OpenJDK and Eclipse, as well as on many advances in specification-based software verification. The implementation demonstrates the value of integrating specification tools directly in the software development IDE and in automating as many tasks as possi...

متن کامل

Proving Programs Incorrect Using a Sequent Calculus for Java Dynamic Logic

Program verification is concerned with proving that a program is correct and adheres to a given specification. Testing a program, in contrast, means to search for a witness that the program is incorrect. In the present paper, we use a program logic for Java to prove the incorrectness of programs. We show that this approach, carried out in a sequent calculus for dynamic logic, creates a connecti...

متن کامل

Test Coverage Analysis for Object Oriented Programs - Structural Testing Through Aspect Oriented Instrumentation

The introduction of Object Oriented Technologies in test centered processes has emphasized the importance of finding new methods for software verification. Testing metrics and practices, developed for structured programs, have to be adapted in order to address the prerogatives of object oriented programming. In this work, we introduce a new approach to structural coverage evaluation in the test...

متن کامل

The Architecture of JML4, a Proposed Integrated Verification Environment for JML

Java Modeling Language tools cover the full range of verification from runtime assertion checking (RAC) to full static program verification, with extended static checking (ESC) in between. Experience demonstrates that verification of sizeable programs is best achieved when these technologies are used together. Unfortunately, developers trying to do this must use separate applications and deal w...

متن کامل

On Test Generation through Programming in UDITA

We present an approach for describing tests using nondeterministic test generation programs. To write test generation programs, we introduce UDITA, a Java-based language with non-deterministic choice operators and an interface for generating linked structures. We also describe new algorithms that generate concrete tests by efficiently exploring the space of all executions of non-deterministic U...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006